package regex;
/*
 * 判断一个字符串是否是手机字符串
 * "13534931778"
 * 手机号的规则:
 *   0.手机号的长度必须是11位
 *   1.手机号的第一位必须是1
 *   2.手机号的第二位:3或4或5或7或8
 *   3.手机号的剩余九位的每一位都必须是数字
 */

public class RegexDemo01 {
    public static void main(String[] args) {
        System.out.println(checkPhoneNum("13534931778"));
        System.out.println(checkPhoneNum("23534931778"));
        System.out.println(checkPhoneNum("19534931778"));
        System.out.println(checkPhoneNum("1353493a778"));
    }
    /*检测一个手机号字符串是否符合手机号的规则*/
    public static boolean checkPhoneNum(String phoneNum){
        if (phoneNum.length()!=11) {  //0.手机号字符串的长度必须是11位
            return false;
        } else if (phoneNum.charAt(0)!='1') {// 1.手机号的第一位必须是1
            return false;
        } else if (!(phoneNum.charAt(1)=='3'
                   || phoneNum.charAt(1)=='4'
                   || phoneNum.charAt(1)=='5'
                  || phoneNum.charAt(1)=='7'
                  || phoneNum.charAt(1)=='8')) {//2.手机号的第二位:3或4或5或7或8

            return false;

        }else{
            char[] chars = phoneNum.toCharArray();// 3.手机号的剩余九位的每一位都必须是数字
            for (int i = 2; i < chars.length; i++) {
                if (!(chars[i]>='0' && chars[i]<='9')) {
                    return false;
                }
            }
        }

        return true;//既然代码能执行到这里说明上面的所有if中的retur false都不会被执行,也就是手机号的规则都能满足
    }

}
